package lab02.test24;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;

public class  Test24   {
    public static void main(String[] args) throws ParseException {
        //24、 	编程实现：计算两个日期的天数之差。编写Java应用程序，来计算任意两个日期的天数之差。
        // 要求：两个日期用字符串形式输入（比如输入“20100101”表示2010年1月1日），
        // 需要将日期字符串的年、月、日分别转换为数字形式。
        Scanner sc=new Scanner(System.in);
        System.out.println("输入第一个日期：");
        String n=sc.nextLine();

        SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");//规定输入的日期格式
        Date dt=sdf.parse(n);    //将输入的字符串转为日期
        String b=String.format("%tY年%tm月%td日",dt,dt,dt); //格式化日期
        System.out.println(b);  //输出日期

        Calendar cal = Calendar.getInstance();
        cal.setTime(dt);                        //创建一个指定日期的Calendar对象
        long time1=cal.getTimeInMillis();       //将日期换算为微秒，此微秒是从计算机系统自身时间1970年01月01日0时开始计算

        System.out.println("输入第二个日期：");
        String m=sc.nextLine();

        SimpleDateFormat sdf1=new SimpleDateFormat("yyyyMMdd");
        Date dt1=sdf.parse(m);
        String d=String.format("%tY年%tm月%td日",dt1,dt1,dt1);

        cal.setTime(dt1);
        long time2=cal.getTimeInMillis();
        System.out.println(d);

       double between_days=(time2-time1)/(1000*3600*24);  //将微秒换算为天

        // System.out.println("两个日期相差"+(day2-day1)+"天"); //只适用于同一年
        System.out.println("两个日期相差"+Math.abs(between_days)+"天");
    }
}

